Imports JS.Herramientas.ContenedorComponentes
Imports JS.Nativo.InterfazServicios

Public Class Agente

	Private Shared mAportesVoluntarios As IAportesVoluntarios
	Private Shared mContable As IContable
	Private Shared mLocalizacionGeografica As ILocalizacionGeografica
	Private Shared mObraSocial As IObraSocial
	Private Shared mPersonas As IPersonas
	Private Shared mSocios As ISocios

	Public Shared ReadOnly Property AportesVoluntarios() As IAportesVoluntarios
		Get
			If mAportesVoluntarios Is Nothing Then
				mAportesVoluntarios = Contenedor.Instancia(GetType(IAportesVoluntarios))
			End If
			Return mAportesVoluntarios
		End Get
	End Property

	Public Shared ReadOnly Property Contable() As IContable
		Get
			If mContable Is Nothing Then
				mContable = Contenedor.Instancia(GetType(IContable))
			End If
			Return mContable
		End Get
	End Property

	Public Shared ReadOnly Property LocalizacionGeografica() As ILocalizacionGeografica
		Get
			If mLocalizacionGeografica Is Nothing Then
				mLocalizacionGeografica = Contenedor.Instancia(GetType(ILocalizacionGeografica))
			End If
			Return mLocalizacionGeografica
		End Get
	End Property

	Public Shared ReadOnly Property ObraSocial() As IObraSocial
		Get
			If mObraSocial Is Nothing Then
				mObraSocial = Contenedor.Instancia(GetType(IObraSocial))
			End If
			Return mObraSocial
		End Get
	End Property

	Public Shared ReadOnly Property Personas() As IPersonas
		Get
			If mPersonas Is Nothing Then
				mPersonas = Contenedor.Instancia(GetType(IPersonas))
			End If
			Return mPersonas
		End Get
	End Property

	Public Shared ReadOnly Property Socios() As ISocios
		Get
			If mSocios Is Nothing Then
				mSocios = Contenedor.Instancia(GetType(ISocios))
			End If
			Return mSocios
		End Get
	End Property

End Class
